#ifndef GUARD_CONSTANTS_MAP_GROUPS_H
#define GUARD_CONSTANTS_MAP_GROUPS_H

// Map Group 0
#define MAP_BATTLE_COLOSSEUM_2P (0 | (0 << 8))
#define MAP_TRADE_CENTER        (1 | (0 << 8))
#define MAP_RECORD_CENTER       (2 | (0 << 8))
#define MAP_BATTLE_COLOSSEUM_4P (3 | (0 << 8))
#define MAP_UNION_ROOM          (4 | (0 << 8))

// Map Group 1
#define MAP_VIRIDIAN_FOREST                      (0 | (1 << 8))
#define MAP_MT_MOON_1F                           (1 | (1 << 8))
#define MAP_MT_MOON_B1F                          (2 | (1 << 8))
#define MAP_MT_MOON_B2F                          (3 | (1 << 8))
#define MAP_SSANNE_EXTERIOR                      (4 | (1 << 8))
#define MAP_SSANNE_1F_CORRIDOR                   (5 | (1 << 8))
#define MAP_SSANNE_2F_CORRIDOR                   (6 | (1 << 8))
#define MAP_SSANNE_3F_CORRIDOR                   (7 | (1 << 8))
#define MAP_SSANNE_B1F_CORRIDOR                  (8 | (1 << 8))
#define MAP_SSANNE_DECK                          (9 | (1 << 8))
#define MAP_SSANNE_KITCHEN                       (10 | (1 << 8))
#define MAP_SSANNE_CAPTAINS_OFFICE               (11 | (1 << 8))
#define MAP_SSANNE_1F_ROOM1                      (12 | (1 << 8))
#define MAP_SSANNE_1F_ROOM2                      (13 | (1 << 8))
#define MAP_SSANNE_1F_ROOM3                      (14 | (1 << 8))
#define MAP_SSANNE_1F_ROOM4                      (15 | (1 << 8))
#define MAP_SSANNE_1F_ROOM5                      (16 | (1 << 8))
#define MAP_SSANNE_1F_ROOM7                      (17 | (1 << 8))
#define MAP_SSANNE_2F_ROOM1                      (18 | (1 << 8))
#define MAP_SSANNE_2F_ROOM2                      (19 | (1 << 8))
#define MAP_SSANNE_2F_ROOM3                      (20 | (1 << 8))
#define MAP_SSANNE_2F_ROOM4                      (21 | (1 << 8))
#define MAP_SSANNE_2F_ROOM5                      (22 | (1 << 8))
#define MAP_SSANNE_2F_ROOM6                      (23 | (1 << 8))
#define MAP_SSANNE_B1F_ROOM1                     (24 | (1 << 8))
#define MAP_SSANNE_B1F_ROOM2                     (25 | (1 << 8))
#define MAP_SSANNE_B1F_ROOM3                     (26 | (1 << 8))
#define MAP_SSANNE_B1F_ROOM4                     (27 | (1 << 8))
#define MAP_SSANNE_B1F_ROOM5                     (28 | (1 << 8))
#define MAP_SSANNE_1F_ROOM6                      (29 | (1 << 8))
#define MAP_UNDERGROUND_PATH_NORTH_ENTRANCE      (30 | (1 << 8))
#define MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL  (31 | (1 << 8))
#define MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE      (32 | (1 << 8))
#define MAP_UNDERGROUND_PATH_WEST_ENTRANCE       (33 | (1 << 8))
#define MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL    (34 | (1 << 8))
#define MAP_UNDERGROUND_PATH_EAST_ENTRANCE       (35 | (1 << 8))
#define MAP_DIGLETTS_CAVE_NORTH_ENTRANCE         (36 | (1 << 8))
#define MAP_DIGLETTS_CAVE_B1F                    (37 | (1 << 8))
#define MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE         (38 | (1 << 8))
#define MAP_VICTORY_ROAD_1F                      (39 | (1 << 8))
#define MAP_VICTORY_ROAD_2F                      (40 | (1 << 8))
#define MAP_VICTORY_ROAD_3F                      (41 | (1 << 8))
#define MAP_ROCKET_HIDEOUT_B1F                   (42 | (1 << 8))
#define MAP_ROCKET_HIDEOUT_B2F                   (43 | (1 << 8))
#define MAP_ROCKET_HIDEOUT_B3F                   (44 | (1 << 8))
#define MAP_ROCKET_HIDEOUT_B4F                   (45 | (1 << 8))
#define MAP_ROCKET_HIDEOUT_ELEVATOR              (46 | (1 << 8))
#define MAP_SILPH_CO_1F                          (47 | (1 << 8))
#define MAP_SILPH_CO_2F                          (48 | (1 << 8))
#define MAP_SILPH_CO_3F                          (49 | (1 << 8))
#define MAP_SILPH_CO_4F                          (50 | (1 << 8))
#define MAP_SILPH_CO_5F                          (51 | (1 << 8))
#define MAP_SILPH_CO_6F                          (52 | (1 << 8))
#define MAP_SILPH_CO_7F                          (53 | (1 << 8))
#define MAP_SILPH_CO_8F                          (54 | (1 << 8))
#define MAP_SILPH_CO_9F                          (55 | (1 << 8))
#define MAP_SILPH_CO_10F                         (56 | (1 << 8))
#define MAP_SILPH_CO_11F                         (57 | (1 << 8))
#define MAP_SILPH_CO_ELEVATOR                    (58 | (1 << 8))
#define MAP_POKEMON_MANSION_1F                   (59 | (1 << 8))
#define MAP_POKEMON_MANSION_2F                   (60 | (1 << 8))
#define MAP_POKEMON_MANSION_3F                   (61 | (1 << 8))
#define MAP_POKEMON_MANSION_B1F                  (62 | (1 << 8))
#define MAP_SAFARI_ZONE_CENTER                   (63 | (1 << 8))
#define MAP_SAFARI_ZONE_EAST                     (64 | (1 << 8))
#define MAP_SAFARI_ZONE_NORTH                    (65 | (1 << 8))
#define MAP_SAFARI_ZONE_WEST                     (66 | (1 << 8))
#define MAP_SAFARI_ZONE_CENTER_REST_HOUSE        (67 | (1 << 8))
#define MAP_SAFARI_ZONE_EAST_REST_HOUSE          (68 | (1 << 8))
#define MAP_SAFARI_ZONE_NORTH_REST_HOUSE         (69 | (1 << 8))
#define MAP_SAFARI_ZONE_WEST_REST_HOUSE          (70 | (1 << 8))
#define MAP_SAFARI_ZONE_SECRET_HOUSE             (71 | (1 << 8))
#define MAP_CERULEAN_CAVE_1F                     (72 | (1 << 8))
#define MAP_CERULEAN_CAVE_2F                     (73 | (1 << 8))
#define MAP_CERULEAN_CAVE_B1F                    (74 | (1 << 8))
#define MAP_POKEMON_LEAGUE_LORELEIS_ROOM         (75 | (1 << 8))
#define MAP_POKEMON_LEAGUE_BRUNOS_ROOM           (76 | (1 << 8))
#define MAP_POKEMON_LEAGUE_AGATHAS_ROOM          (77 | (1 << 8))
#define MAP_POKEMON_LEAGUE_LANCES_ROOM           (78 | (1 << 8))
#define MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM        (79 | (1 << 8))
#define MAP_POKEMON_LEAGUE_HALL_OF_FAME          (80 | (1 << 8))
#define MAP_ROCK_TUNNEL_1F                       (81 | (1 << 8))
#define MAP_ROCK_TUNNEL_B1F                      (82 | (1 << 8))
#define MAP_SEAFOAM_ISLANDS_1F                   (83 | (1 << 8))
#define MAP_SEAFOAM_ISLANDS_B1F                  (84 | (1 << 8))
#define MAP_SEAFOAM_ISLANDS_B2F                  (85 | (1 << 8))
#define MAP_SEAFOAM_ISLANDS_B3F                  (86 | (1 << 8))
#define MAP_SEAFOAM_ISLANDS_B4F                  (87 | (1 << 8))
#define MAP_POKEMON_TOWER_1F                     (88 | (1 << 8))
#define MAP_POKEMON_TOWER_2F                     (89 | (1 << 8))
#define MAP_POKEMON_TOWER_3F                     (90 | (1 << 8))
#define MAP_POKEMON_TOWER_4F                     (91 | (1 << 8))
#define MAP_POKEMON_TOWER_5F                     (92 | (1 << 8))
#define MAP_POKEMON_TOWER_6F                     (93 | (1 << 8))
#define MAP_POKEMON_TOWER_7F                     (94 | (1 << 8))
#define MAP_POWER_PLANT                          (95 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B4F               (96 | (1 << 8))
#define MAP_MT_EMBER_EXTERIOR                    (97 | (1 << 8))
#define MAP_MT_EMBER_SUMMIT_PATH_1F              (98 | (1 << 8))
#define MAP_MT_EMBER_SUMMIT_PATH_2F              (99 | (1 << 8))
#define MAP_MT_EMBER_SUMMIT_PATH_3F              (100 | (1 << 8))
#define MAP_MT_EMBER_SUMMIT                      (101 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B5F               (102 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_1F                (103 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B1F               (104 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B2F               (105 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B3F               (106 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS        (107 | (1 << 8))
#define MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS        (108 | (1 << 8))
#define MAP_THREE_ISLAND_BERRY_FOREST            (109 | (1 << 8))
#define MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE    (110 | (1 << 8))
#define MAP_FOUR_ISLAND_ICEFALL_CAVE_1F          (111 | (1 << 8))
#define MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F         (112 | (1 << 8))
#define MAP_FOUR_ISLAND_ICEFALL_CAVE_BACK        (113 | (1 << 8))
#define MAP_FIVE_ISLAND_ROCKET_WAREHOUSE         (114 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_1F            (115 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_B1F           (116 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_B2F           (117 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_B3F           (118 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_B4F           (119 | (1 << 8))
#define MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM (120 | (1 << 8))
#define MAP_SIX_ISLAND_PATTERN_BUSH              (121 | (1 << 8))
#define MAP_SIX_ISLAND_ALTERING_CAVE             (122 | (1 << 8))

// Map Group 2
#define MAP_NAVEL_ROCK_EXTERIOR                       (0 | (2 << 8))
#define MAP_TRAINER_TOWER_1F                          (1 | (2 << 8))
#define MAP_TRAINER_TOWER_2F                          (2 | (2 << 8))
#define MAP_TRAINER_TOWER_3F                          (3 | (2 << 8))
#define MAP_TRAINER_TOWER_4F                          (4 | (2 << 8))
#define MAP_TRAINER_TOWER_5F                          (5 | (2 << 8))
#define MAP_TRAINER_TOWER_6F                          (6 | (2 << 8))
#define MAP_TRAINER_TOWER_7F                          (7 | (2 << 8))
#define MAP_TRAINER_TOWER_8F                          (8 | (2 << 8))
#define MAP_TRAINER_TOWER_ROOF                        (9 | (2 << 8))
#define MAP_TRAINER_TOWER_LOBBY                       (10 | (2 << 8))
#define MAP_TRAINER_TOWER_ELEVATOR                    (11 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE            (12 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM1               (13 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM2               (14 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM3               (15 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM4               (16 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM5               (17 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM6               (18 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM7               (19 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM8               (20 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM9               (21 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM10              (22 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM11              (23 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM12              (24 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM13              (25 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM14              (26 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER  (27 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER  (28 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER  (29 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER (30 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER  (31 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER    (32 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER (33 | (2 << 8))
#define MAP_THREE_ISLAND_DUNSPARCE_TUNNEL             (34 | (2 << 8))
#define MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY    (35 | (2 << 8))
#define MAP_NAVEL_ROCK_1F                             (36 | (2 << 8))
#define MAP_NAVEL_ROCK_SUMMIT                         (37 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE                           (38 | (2 << 8))
#define MAP_NAVEL_ROCK_SUMMIT_PATH_2F                 (39 | (2 << 8))
#define MAP_NAVEL_ROCK_SUMMIT_PATH_3F                 (40 | (2 << 8))
#define MAP_NAVEL_ROCK_SUMMIT_PATH_4F                 (41 | (2 << 8))
#define MAP_NAVEL_ROCK_SUMMIT_PATH_5F                 (42 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B1F                  (43 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B2F                  (44 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B3F                  (45 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B4F                  (46 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B5F                  (47 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B6F                  (48 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B7F                  (49 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B8F                  (50 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B9F                  (51 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B10F                 (52 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE_PATH_B11F                 (53 | (2 << 8))
#define MAP_NAVEL_ROCK_B1F                            (54 | (2 << 8))
#define MAP_NAVEL_ROCK_FORK                           (55 | (2 << 8))
#define MAP_BIRTH_ISLAND_EXTERIOR                     (56 | (2 << 8))
#define MAP_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA          (57 | (2 << 8))
#define MAP_BIRTH_ISLAND_HARBOR                       (58 | (2 << 8))
#define MAP_NAVEL_ROCK_HARBOR                         (59 | (2 << 8))

// Map Group 3
#define MAP_PALLET_TOWN                          (0 | (3 << 8))
#define MAP_VIRIDIAN_CITY                        (1 | (3 << 8))
#define MAP_PEWTER_CITY                          (2 | (3 << 8))
#define MAP_CERULEAN_CITY                        (3 | (3 << 8))
#define MAP_LAVENDER_TOWN                        (4 | (3 << 8))
#define MAP_VERMILION_CITY                       (5 | (3 << 8))
#define MAP_CELADON_CITY                         (6 | (3 << 8))
#define MAP_FUCHSIA_CITY                         (7 | (3 << 8))
#define MAP_CINNABAR_ISLAND                      (8 | (3 << 8))
#define MAP_INDIGO_PLATEAU_EXTERIOR              (9 | (3 << 8))
#define MAP_SAFFRON_CITY                         (10 | (3 << 8))
#define MAP_SAFFRON_CITY_CONNECTION              (11 | (3 << 8))
#define MAP_ONE_ISLAND                           (12 | (3 << 8))
#define MAP_TWO_ISLAND                           (13 | (3 << 8))
#define MAP_THREE_ISLAND                         (14 | (3 << 8))
#define MAP_FOUR_ISLAND                          (15 | (3 << 8))
#define MAP_FIVE_ISLAND                          (16 | (3 << 8))
#define MAP_SEVEN_ISLAND                         (17 | (3 << 8))
#define MAP_SIX_ISLAND                           (18 | (3 << 8))
#define MAP_ROUTE1                               (19 | (3 << 8))
#define MAP_ROUTE2                               (20 | (3 << 8))
#define MAP_ROUTE3                               (21 | (3 << 8))
#define MAP_ROUTE4                               (22 | (3 << 8))
#define MAP_ROUTE5                               (23 | (3 << 8))
#define MAP_ROUTE6                               (24 | (3 << 8))
#define MAP_ROUTE7                               (25 | (3 << 8))
#define MAP_ROUTE8                               (26 | (3 << 8))
#define MAP_ROUTE9                               (27 | (3 << 8))
#define MAP_ROUTE10                              (28 | (3 << 8))
#define MAP_ROUTE11                              (29 | (3 << 8))
#define MAP_ROUTE12                              (30 | (3 << 8))
#define MAP_ROUTE13                              (31 | (3 << 8))
#define MAP_ROUTE14                              (32 | (3 << 8))
#define MAP_ROUTE15                              (33 | (3 << 8))
#define MAP_ROUTE16                              (34 | (3 << 8))
#define MAP_ROUTE17                              (35 | (3 << 8))
#define MAP_ROUTE18                              (36 | (3 << 8))
#define MAP_ROUTE19                              (37 | (3 << 8))
#define MAP_ROUTE20                              (38 | (3 << 8))
#define MAP_ROUTE21_NORTH                        (39 | (3 << 8))
#define MAP_ROUTE21_SOUTH                        (40 | (3 << 8))
#define MAP_ROUTE22                              (41 | (3 << 8))
#define MAP_ROUTE23                              (42 | (3 << 8))
#define MAP_ROUTE24                              (43 | (3 << 8))
#define MAP_ROUTE25                              (44 | (3 << 8))
#define MAP_ONE_ISLAND_KINDLE_ROAD               (45 | (3 << 8))
#define MAP_ONE_ISLAND_TREASURE_BEACH            (46 | (3 << 8))
#define MAP_TWO_ISLAND_CAPE_BRINK                (47 | (3 << 8))
#define MAP_THREE_ISLAND_BOND_BRIDGE             (48 | (3 << 8))
#define MAP_THREE_ISLAND_PORT                    (49 | (3 << 8))
#define MAP_PROTOTYPE_SEVII_ISLE_6               (50 | (3 << 8))
#define MAP_PROTOTYPE_SEVII_ISLE_7               (51 | (3 << 8))
#define MAP_PROTOTYPE_SEVII_ISLE_8               (52 | (3 << 8))
#define MAP_PROTOTYPE_SEVII_ISLE_9               (53 | (3 << 8))
#define MAP_FIVE_ISLAND_RESORT_GORGEOUS          (54 | (3 << 8))
#define MAP_FIVE_ISLAND_WATER_LABYRINTH          (55 | (3 << 8))
#define MAP_FIVE_ISLAND_MEADOW                   (56 | (3 << 8))
#define MAP_FIVE_ISLAND_MEMORIAL_PILLAR          (57 | (3 << 8))
#define MAP_SIX_ISLAND_OUTCAST_ISLAND            (58 | (3 << 8))
#define MAP_SIX_ISLAND_GREEN_PATH                (59 | (3 << 8))
#define MAP_SIX_ISLAND_WATER_PATH                (60 | (3 << 8))
#define MAP_SIX_ISLAND_RUIN_VALLEY               (61 | (3 << 8))
#define MAP_SEVEN_ISLAND_TRAINER_TOWER           (62 | (3 << 8))
#define MAP_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE (63 | (3 << 8))
#define MAP_SEVEN_ISLAND_SEVAULT_CANYON          (64 | (3 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS            (65 | (3 << 8))

// Map Group 4
#define MAP_PALLET_TOWN_PLAYERS_HOUSE_1F   (0 | (4 << 8))
#define MAP_PALLET_TOWN_PLAYERS_HOUSE_2F   (1 | (4 << 8))
#define MAP_PALLET_TOWN_GARYS_HOUSE        (2 | (4 << 8))
#define MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB (3 | (4 << 8))

// Map Group 5
#define MAP_VIRIDIAN_CITY_HOUSE1            (0 | (5 << 8))
#define MAP_VIRIDIAN_CITY_GYM               (1 | (5 << 8))
#define MAP_VIRIDIAN_CITY_HOUSE2            (2 | (5 << 8))
#define MAP_VIRIDIAN_CITY_MART              (3 | (5 << 8))
#define MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F (4 | (5 << 8))
#define MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F (5 | (5 << 8))

// Map Group 6
#define MAP_PEWTER_CITY_MUSEUM_1F         (0 | (6 << 8))
#define MAP_PEWTER_CITY_MUSEUM_2F         (1 | (6 << 8))
#define MAP_PEWTER_CITY_GYM               (2 | (6 << 8))
#define MAP_PEWTER_CITY_MART              (3 | (6 << 8))
#define MAP_PEWTER_CITY_HOUSE1            (4 | (6 << 8))
#define MAP_PEWTER_CITY_POKEMON_CENTER_1F (5 | (6 << 8))
#define MAP_PEWTER_CITY_POKEMON_CENTER_2F (6 | (6 << 8))
#define MAP_PEWTER_CITY_HOUSE2            (7 | (6 << 8))

// Map Group 7
#define MAP_CERULEAN_CITY_HOUSE1            (0 | (7 << 8))
#define MAP_CERULEAN_CITY_HOUSE2            (1 | (7 << 8))
#define MAP_CERULEAN_CITY_HOUSE3            (2 | (7 << 8))
#define MAP_CERULEAN_CITY_POKEMON_CENTER_1F (3 | (7 << 8))
#define MAP_CERULEAN_CITY_POKEMON_CENTER_2F (4 | (7 << 8))
#define MAP_CERULEAN_CITY_GYM               (5 | (7 << 8))
#define MAP_CERULEAN_CITY_BIKE_SHOP         (6 | (7 << 8))
#define MAP_CERULEAN_CITY_MART              (7 | (7 << 8))
#define MAP_CERULEAN_CITY_HOUSE4            (8 | (7 << 8))
#define MAP_CERULEAN_CITY_HOUSE5            (9 | (7 << 8))

// Map Group 8
#define MAP_LAVENDER_TOWN_POKEMON_CENTER_1F       (0 | (8 << 8))
#define MAP_LAVENDER_TOWN_POKEMON_CENTER_2F       (1 | (8 << 8))
#define MAP_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE (2 | (8 << 8))
#define MAP_LAVENDER_TOWN_HOUSE1                  (3 | (8 << 8))
#define MAP_LAVENDER_TOWN_HOUSE2                  (4 | (8 << 8))
#define MAP_LAVENDER_TOWN_MART                    (5 | (8 << 8))

// Map Group 9
#define MAP_VERMILION_CITY_HOUSE1            (0 | (9 << 8))
#define MAP_VERMILION_CITY_POKEMON_CENTER_1F (1 | (9 << 8))
#define MAP_VERMILION_CITY_POKEMON_CENTER_2F (2 | (9 << 8))
#define MAP_VERMILION_CITY_POKEMON_FAN_CLUB  (3 | (9 << 8))
#define MAP_VERMILION_CITY_HOUSE2            (4 | (9 << 8))
#define MAP_VERMILION_CITY_MART              (5 | (9 << 8))
#define MAP_VERMILION_CITY_GYM               (6 | (9 << 8))
#define MAP_VERMILION_CITY_HOUSE3            (7 | (9 << 8))

// Map Group 10
#define MAP_CELADON_CITY_DEPARTMENT_STORE_1F       (0 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_2F       (1 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_3F       (2 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_4F       (3 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_5F       (4 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_ROOF     (5 | (10 << 8))
#define MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR (6 | (10 << 8))
#define MAP_CELADON_CITY_CONDOMINIUMS_1F           (7 | (10 << 8))
#define MAP_CELADON_CITY_CONDOMINIUMS_2F           (8 | (10 << 8))
#define MAP_CELADON_CITY_CONDOMINIUMS_3F           (9 | (10 << 8))
#define MAP_CELADON_CITY_CONDOMINIUMS_ROOF         (10 | (10 << 8))
#define MAP_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM    (11 | (10 << 8))
#define MAP_CELADON_CITY_POKEMON_CENTER_1F         (12 | (10 << 8))
#define MAP_CELADON_CITY_POKEMON_CENTER_2F         (13 | (10 << 8))
#define MAP_CELADON_CITY_GAME_CORNER               (14 | (10 << 8))
#define MAP_CELADON_CITY_GAME_CORNER_PRIZE_ROOM    (15 | (10 << 8))
#define MAP_CELADON_CITY_GYM                       (16 | (10 << 8))
#define MAP_CELADON_CITY_RESTAURANT                (17 | (10 << 8))
#define MAP_CELADON_CITY_HOUSE1                    (18 | (10 << 8))
#define MAP_CELADON_CITY_HOTEL                     (19 | (10 << 8))

// Map Group 11
#define MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE (0 | (11 << 8))
#define MAP_FUCHSIA_CITY_MART                 (1 | (11 << 8))
#define MAP_FUCHSIA_CITY_SAFARI_ZONE_OFFICE   (2 | (11 << 8))
#define MAP_FUCHSIA_CITY_GYM                  (3 | (11 << 8))
#define MAP_FUCHSIA_CITY_HOUSE1               (4 | (11 << 8))
#define MAP_FUCHSIA_CITY_POKEMON_CENTER_1F    (5 | (11 << 8))
#define MAP_FUCHSIA_CITY_POKEMON_CENTER_2F    (6 | (11 << 8))
#define MAP_FUCHSIA_CITY_WARDENS_HOUSE        (7 | (11 << 8))
#define MAP_FUCHSIA_CITY_HOUSE2               (8 | (11 << 8))
#define MAP_FUCHSIA_CITY_HOUSE3               (9 | (11 << 8))

// Map Group 12
#define MAP_CINNABAR_ISLAND_GYM                         (0 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE        (1 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE          (2 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM   (3 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM (4 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F           (5 | (12 << 8))
#define MAP_CINNABAR_ISLAND_POKEMON_CENTER_2F           (6 | (12 << 8))
#define MAP_CINNABAR_ISLAND_MART                        (7 | (12 << 8))

// Map Group 13
#define MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F (0 | (13 << 8))
#define MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F (1 | (13 << 8))

// Map Group 14
#define MAP_SAFFRON_CITY_COPYCATS_HOUSE_1F        (0 | (14 << 8))
#define MAP_SAFFRON_CITY_COPYCATS_HOUSE_2F        (1 | (14 << 8))
#define MAP_SAFFRON_CITY_DOJO                     (2 | (14 << 8))
#define MAP_SAFFRON_CITY_GYM                      (3 | (14 << 8))
#define MAP_SAFFRON_CITY_HOUSE                    (4 | (14 << 8))
#define MAP_SAFFRON_CITY_MART                     (5 | (14 << 8))
#define MAP_SAFFRON_CITY_POKEMON_CENTER_1F        (6 | (14 << 8))
#define MAP_SAFFRON_CITY_POKEMON_CENTER_2F        (7 | (14 << 8))
#define MAP_SAFFRON_CITY_MR_PSYCHICS_HOUSE        (8 | (14 << 8))
#define MAP_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (14 << 8))

// Map Group 15
#define MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE (0 | (15 << 8))
#define MAP_ROUTE2_HOUSE                          (1 | (15 << 8))
#define MAP_ROUTE2_EAST_BUILDING                  (2 | (15 << 8))
#define MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE (3 | (15 << 8))

// Map Group 16
#define MAP_ROUTE4_POKEMON_CENTER_1F (0 | (16 << 8))
#define MAP_ROUTE4_POKEMON_CENTER_2F (1 | (16 << 8))

// Map Group 17
#define MAP_ROUTE5_POKEMON_DAY_CARE (0 | (17 << 8))
#define MAP_ROUTE5_SOUTH_ENTRANCE   (1 | (17 << 8))

// Map Group 18
#define MAP_ROUTE6_NORTH_ENTRANCE (0 | (18 << 8))
#define MAP_UNKNOWN_MAP_18_01     (1 | (18 << 8))

// Map Group 19
#define MAP_ROUTE7_EAST_ENTRANCE (0 | (19 << 8))

// Map Group 20
#define MAP_ROUTE8_WEST_ENTRANCE (0 | (20 << 8))

// Map Group 21
#define MAP_ROUTE10_POKEMON_CENTER_1F (0 | (21 << 8))
#define MAP_ROUTE10_POKEMON_CENTER_2F (1 | (21 << 8))

// Map Group 22
#define MAP_ROUTE11_EAST_ENTRANCE_1F (0 | (22 << 8))
#define MAP_ROUTE11_EAST_ENTRANCE_2F (1 | (22 << 8))

// Map Group 23
#define MAP_ROUTE12_NORTH_ENTRANCE_1F (0 | (23 << 8))
#define MAP_ROUTE12_NORTH_ENTRANCE_2F (1 | (23 << 8))
#define MAP_ROUTE12_FISHING_HOUSE     (2 | (23 << 8))

// Map Group 24
#define MAP_ROUTE15_WEST_ENTRANCE_1F (0 | (24 << 8))
#define MAP_ROUTE15_WEST_ENTRANCE_2F (1 | (24 << 8))

// Map Group 25
#define MAP_ROUTE16_HOUSE             (0 | (25 << 8))
#define MAP_ROUTE16_NORTH_ENTRANCE_1F (1 | (25 << 8))
#define MAP_ROUTE16_NORTH_ENTRANCE_2F (2 | (25 << 8))

// Map Group 26
#define MAP_ROUTE18_EAST_ENTRANCE_1F (0 | (26 << 8))
#define MAP_ROUTE18_EAST_ENTRANCE_2F (1 | (26 << 8))

// Map Group 27
#define MAP_UNUSED_HOUSE_27_00 (0 | (27 << 8))

// Map Group 28
#define MAP_ROUTE22_NORTH_ENTRANCE (0 | (28 << 8))

// Map Group 29
#define MAP_UNUSED_HOUSE_29_00 (0 | (29 << 8))

// Map Group 30
#define MAP_ROUTE25_SEA_COTTAGE (0 | (30 << 8))

// Map Group 31
#define MAP_SEVEN_ISLAND_HOUSE_ROOM1       (0 | (31 << 8))
#define MAP_SEVEN_ISLAND_HOUSE_ROOM2       (1 | (31 << 8))
#define MAP_SEVEN_ISLAND_MART              (2 | (31 << 8))
#define MAP_SEVEN_ISLAND_POKEMON_CENTER_1F (3 | (31 << 8))
#define MAP_SEVEN_ISLAND_POKEMON_CENTER_2F (4 | (31 << 8))
#define MAP_UNUSED_HOUSE_31_05             (5 | (31 << 8))
#define MAP_SEVEN_ISLAND_HARBOR            (6 | (31 << 8))

// Map Group 32
#define MAP_ONE_ISLAND_POKEMON_CENTER_1F (0 | (32 << 8))
#define MAP_ONE_ISLAND_POKEMON_CENTER_2F (1 | (32 << 8))
#define MAP_ONE_ISLAND_HOUSE1            (2 | (32 << 8))
#define MAP_ONE_ISLAND_HOUSE2            (3 | (32 << 8))
#define MAP_ONE_ISLAND_HARBOR            (4 | (32 << 8))

// Map Group 33
#define MAP_TWO_ISLAND_JOYFUL_GAME_CORNER (0 | (33 << 8))
#define MAP_TWO_ISLAND_HOUSE              (1 | (33 << 8))
#define MAP_TWO_ISLAND_POKEMON_CENTER_1F  (2 | (33 << 8))
#define MAP_TWO_ISLAND_POKEMON_CENTER_2F  (3 | (33 << 8))
#define MAP_TWO_ISLAND_HARBOR             (4 | (33 << 8))

// Map Group 34
#define MAP_THREE_ISLAND_HOUSE1            (0 | (34 << 8))
#define MAP_THREE_ISLAND_POKEMON_CENTER_1F (1 | (34 << 8))
#define MAP_THREE_ISLAND_POKEMON_CENTER_2F (2 | (34 << 8))
#define MAP_THREE_ISLAND_MART              (3 | (34 << 8))
#define MAP_THREE_ISLAND_HOUSE2            (4 | (34 << 8))
#define MAP_THREE_ISLAND_HOUSE3            (5 | (34 << 8))
#define MAP_THREE_ISLAND_HOUSE4            (6 | (34 << 8))
#define MAP_THREE_ISLAND_HOUSE5            (7 | (34 << 8))

// Map Group 35
#define MAP_FOUR_ISLAND_POKEMON_DAY_CARE  (0 | (35 << 8))
#define MAP_FOUR_ISLAND_POKEMON_CENTER_1F (1 | (35 << 8))
#define MAP_FOUR_ISLAND_POKEMON_CENTER_2F (2 | (35 << 8))
#define MAP_FOUR_ISLAND_HOUSE1            (3 | (35 << 8))
#define MAP_FOUR_ISLAND_LORELEIS_HOUSE    (4 | (35 << 8))
#define MAP_FOUR_ISLAND_HARBOR            (5 | (35 << 8))
#define MAP_FOUR_ISLAND_HOUSE2            (6 | (35 << 8))
#define MAP_FOUR_ISLAND_MART              (7 | (35 << 8))

// Map Group 36
#define MAP_FIVE_ISLAND_POKEMON_CENTER_1F (0 | (36 << 8))
#define MAP_FIVE_ISLAND_POKEMON_CENTER_2F (1 | (36 << 8))
#define MAP_FIVE_ISLAND_HARBOR            (2 | (36 << 8))
#define MAP_FIVE_ISLAND_HOUSE1            (3 | (36 << 8))
#define MAP_FIVE_ISLAND_HOUSE2            (4 | (36 << 8))

// Map Group 37
#define MAP_SIX_ISLAND_POKEMON_CENTER_1F (0 | (37 << 8))
#define MAP_SIX_ISLAND_POKEMON_CENTER_2F (1 | (37 << 8))
#define MAP_SIX_ISLAND_HARBOR            (2 | (37 << 8))
#define MAP_SIX_ISLAND_HOUSE             (3 | (37 << 8))
#define MAP_SIX_ISLAND_MART              (4 | (37 << 8))

// Map Group 38
#define MAP_THREE_ISLAND_HARBOR (0 | (38 << 8))

// Map Group 39
#define MAP_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE (0 | (39 << 8))

// Map Group 40
#define MAP_TWO_ISLAND_CAPE_BRINK_HOUSE (0 | (40 << 8))

// Map Group 41
#define MAP_SIX_ISLAND_WATER_PATH_HOUSE1 (0 | (41 << 8))
#define MAP_SIX_ISLAND_WATER_PATH_HOUSE2 (1 | (41 << 8))

// Map Group 42
#define MAP_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE (0 | (42 << 8))

#define MAP_GROUPS_COUNT 43

#endif // GUARD_CONSTANTS_MAP_GROUPS_H
